<?php
namespace bxd\core\plugin;

/**
 * Classe astratta per i plugin
 *
 * @author Fabrizio Filieri
 */
abstract class PluginAbstract 
{
	private $event;
	
	public function __construct() 
	{
		$this->event = \bxd\core\event\Notify::$ON_BEFORE_PARSING_URL;
	}
	
	/**
	 * Ritorna l'evento al quale agganciare a chiamata al metodo run del plugin
	 * 
	 * @return bxd\core\event\Interfaces\Listener l'evento al quale chiamare il metodo run 
	 */
	public function getEvent()
	{
		return $this->event;
	}
	
	/**
	 * Imposta il tipo di evento al quale chiamare il metodo run
	 * 
	 * @param \bxd\core\event\Interfaces\Listener $event l'evento al quale chiamare il metodo run
	 */
	public function setEvent($event)
	{
		$this->event = $event;
	}
	
	/**
	 * Metodo di inizializzazione del plugin
	 */
	public abstract function init();
	
	
	/**
	 * Esecuzione del plugin
	 */
	public abstract function run();

}

?>
